package com.yanqu.road.entity.activity.springunionbanquet;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.utils.property.Property;

import java.util.List;
import java.util.Objects;

@FieldTypeAnnotation(tableName = "t_c_spring_union_banquet_open")
public class SpringUnionBanquetOpenData extends DataObject {

    @FieldTypeAnnotation(select = true, update = true, desc = "活动id")
    private int activityId;

    @FieldTypeAnnotation(update = true, desc = "宴请id，活动中唯一")
    private long banquetId;

    @FieldTypeAnnotation(desc = "开启人")
    private long openUserId;

    @FieldTypeAnnotation(desc = "开启时间")
    private long openTime;

    @FieldTypeAnnotation(desc = "所属商会")
    private String unionUid;

    @FieldTypeAnnotation(desc = "结束时间")
    private long endTime;

    @FieldTypeAnnotation(desc = "菜品包装")
    private int resource;

    @FieldTypeAnnotation(desc = "菜品id")
    private int configId;

    @FieldTypeAnnotation(desc = "开启时-商会人数-奖励最大个数")
    private int maxLimitCount;

    @FieldTypeAnnotation(desc = "特殊奖励总数量")
    private int specialTotalCount;

    @FieldTypeAnnotation(desc = "特殊奖励领取人数")
    private int specialCount;

    @FieldTypeAnnotation(desc = "宴饮id")
    private List<Long> joinIdList;

    @FieldTypeAnnotation(desc = "特殊奖励池，开宴后确定")
    private List<String> specialPoolList;

    @FieldTypeAnnotation(desc = "普通奖池")
    private List<String> poolList;


    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        if(this.activityId != activityId) {
            this.activityId = activityId;
            setUpdateOption();
        }
    }

    public long getBanquetId() {
        return banquetId;
    }

    public void setBanquetId(long banquetId) {
        if(this.banquetId != banquetId) {
            this.banquetId = banquetId;
            setUpdateOption();
        }
    }

    public long getOpenUserId() {
        return openUserId;
    }

    public void setOpenUserId(long openUserId) {
        if(this.openUserId != openUserId) {
            this.openUserId = openUserId;
            setUpdateOption();
        }
    }

    public long getOpenTime() {
        return openTime;
    }

    public void setOpenTime(long openTime) {
        if(this.openTime != openTime) {
            this.openTime = openTime;
            setUpdateOption();
        }
    }

    public String getUnionUid() {
        return unionUid;
    }

    public void setUnionUid(String unionUid) {
        if(!Objects.equals(this.unionUid, unionUid)) {
            this.unionUid = unionUid;
            setUpdateOption();
        }
    }

    public long getEndTime() {
        return endTime;
    }

    public void setEndTime(long endTime) {
        if(this.endTime != endTime) {
            this.endTime = endTime;
            setUpdateOption();
        }
    }

    public int getResource() {
        return resource;
    }

    public void setResource(int resource) {
        this.resource = resource;
    }

    public int getConfigId() {
        return configId;
    }

    public void setConfigId(int configId) {
        if(this.configId != configId) {
            this.configId = configId;
            setUpdateOption();
        }
    }

    public int getMaxLimitCount() {
        return maxLimitCount;
    }

    public void setMaxLimitCount(int maxLimitCount) {
        if(this.maxLimitCount != maxLimitCount) {
            this.maxLimitCount = maxLimitCount;
            setUpdateOption();
        }
    }

    public int getSpecialTotalCount() {
        return specialTotalCount;
    }

    public void setSpecialTotalCount(int specialTotalCount) {
        if(this.specialTotalCount != specialTotalCount) {
            this.specialTotalCount = specialTotalCount;
            setUpdateOption();
        }
    }

    public int getSpecialCount() {
        return specialCount;
    }

    public void setSpecialCount(int specialCount) {
        if(this.specialCount != specialCount) {
            this.specialCount = specialCount;
            setUpdateOption();
        }
    }

    public List<Long> getJoinIdList() {
        return joinIdList;
    }

    public void setJoinIdList(List<Long> joinIdList) {
        this.joinIdList = joinIdList;
    }

    public List<String> getSpecialPoolList() {
        return specialPoolList;
    }

    public void setSpecialPoolList(List<String> specialPoolList) {
        this.specialPoolList = specialPoolList;
        setUpdateOption();
    }

    public List<String> getPoolList() {
        return poolList;
    }

    public void setPoolList(List<String> poolList) {
        this.poolList = poolList;
        setUpdateOption();
    }

}
